﻿namespace Futuret.Core.Futuret.Interface;

/// <summary>
///     Author: Riva
///     Date: 2023/7/11 13:56
///     Description: System Service Specification
/// </summary>
public interface IAppInfo
{
    /// <summary>
    ///     Id
    /// </summary>
    public string Id { get; }

    /// <summary>
    ///     服务名
    /// </summary>
    public string ServiceName { get; }

    /// <summary>
    ///     授权策略
    /// </summary>
    public string CorsPolicy { get; set; }

    /// <summary>
    ///     服务短名
    /// </summary>
    public string ShortName { get; }

    /// <summary>
    ///     根路径
    /// </summary>
    public string RelativeRootPath { get; }

    /// <summary>
    ///     服务版本
    /// </summary>
    public string Version { get; }

    /// <summary>
    ///     描述
    /// </summary>
    public string Description { get; }

    /// <summary>
    ///     应用有效程序集
    /// </summary>
    public IEnumerable<Assembly> AllAssemblies { get; }

    /// <summary>
    ///     所有类型
    /// </summary>
    public IEnumerable<Type> AllTypes { get; }

    /// <summary>
    ///     存储根服务，可能为空
    /// </summary>
    public IServiceProvider? rootServices { get; set; }

    /// <summary>
    ///     全局配置选项
    /// </summary>
    public IConfiguration? configuration { get; set; }

    /// <summary>
    ///     serviceCollection
    /// </summary>
    public IServiceCollection? serviceCollection { get; set; }

    /// <summary>
    ///     IWebHostEnvironment
    /// </summary>
    public IWebHostEnvironment? webHostEnvironment { get; set; }
}